How does Haskell know to stop executing a recursive function on an infinite list

join shbcf.ru